package com.explore.demo.service;

import com.explore.demo.common.ServerResponse;
import com.explore.demo.pojo.HumanSource;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.catalina.Server;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author gaolainan
 * @since 2021-04-18
 */
public interface HumanSourceService extends IService<com.explore.demo.pojo.HumanSource> {
    /**
     * 创建一个hr的信息
     * @param humanSource
     * @return
     */
    public ServerResponse addHumanSource(HumanSource humanSource);

    /**
     * 通过hr的姓名 删除hr的相关信息
     * @param realName
     * @return
     */
    public ServerResponse deleteByRealName(String realName);

    /**
     * 查询全部hr的信息
     * @return
     */
    public ServerResponse queryAll();

    /**
     * 通过hr的姓名 查询hr的相关信息
     * @param realName
     * @return
     */
    public ServerResponse queryByRealName(String realName);

    /**
     * 更新hr的信息
     * @param humanSource
     * @return
     */
    public ServerResponse updateHumanSource(HumanSource humanSource);

    /**
     * 查询当前hr的发布的招聘信息
     * @param request
     * @return
     */
    public ServerResponse showOwnRecruitment(HttpServletRequest request);

    /**
     * hr登录的接口
     * @param account
     * @param password
     * @return
     */
    public ServerResponse humanLogin(String account, String password);

    /**
     * 拿到hr 所发布的职位 的申请列表
     * @param request
     * @return
     */
    public ServerResponse getDeliveryLogs(HttpServletRequest request);

    /**
     * 通过投递记录的id下载对应的简历
     * @param id
     * @param response
     * @exception IOException
     * @return
     */
    public ServerResponse downloadResume(Integer id, HttpServletResponse response) throws IOException;

    /**
     * 获取当前hr发布的职位列表
     * @param request
     * @return
     */
    public ServerResponse listRecruitment(HttpServletRequest request);

    /**
     * 根据招聘信息的标题 指定检索对应的内容
     * @param info
     * @param request
     * @return
     */
    public ServerResponse searchByRecruitmentName(String info, HttpServletRequest request);

    /**
     * 根据用户名称检索对应的 投递记录
     * @param info
     * @param request
     * @return
     */
    public ServerResponse searchDeliveryLogByUserName(String info, HttpServletRequest request);


    /**
     * 获得hr所属公司的信息
     * @param request
     * @return
     */
    public ServerResponse getOwnCompanyInfo(HttpServletRequest request);

    /**
     * hr注册自己的账号
     * @param account
     * @param password
     * @param request
     * @return
     */
    public ServerResponse register(String account, String password, String realName,HttpServletRequest request);

}
